package com.weibo.dao;

import com.weibo.pojo.Shell;
import com.weibo.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName AdminMapper
 * @Author 天火
 * @Date 2019-03-26
 * @Version 1.0
 */
public interface AdminMapper {

    /**
     * 查询最近一个月的微博，用户，评论，贝壳的数量
     * @param tableName 表名
     * @param condition 条件
     * @param columnName 列名
     * @return int
     */
     int findTargetNum(String tableName,String condition,String columnName);

    /**
     * 查询某个表的总记录
     * @param tableName
     * @return
     */
     int findAllNum(@Param(value = "tableName") String tableName);

    /**
     * 回答问题的数量
     * @return
     */
     int findAllAnswerNum();

    /**
     * 查找微博贝壳七天的数量
     * @param tableName
     * @param columnName
     * @param dayNum
     * @return
     */
     int finWeiboOrShellDay(String tableName,String columnName,int dayNum);


    /**
     * 输出最近七天
     * @param num 相差天数
     * @return
     */
    String findDay(int num);

    /**
     * 查询所有用户
     * @return
     */
    List<User> findAllUser();

    /**
     * 模糊查询所有贝壳
     * @param key
     * @return
     */
    List<Shell> findShellByKey(@Param(value = "key") String key);

    /**
     * 管理员用户登录
     * @param name
     * @param passWord
     * @return
     */
    User findAdminUser(String name,String passWord);

    /**
     * 更新微博状态
     * @param wId
     * @param state
     */
    void updateWeiboStateByWId(Long wId,Long state);

    /**
     * 更新用户被封时间
     * @param uId
     * @param bannedDay
     */
    void updateBanTimeByUserId(Long uId,Integer bannedDay);

    /**
     * 解封用户
     * @param uId
     */
    void unBlockUser(Long uId);

    /**
     * 更新贝壳状态
     * @param shellId
     * @param state
     */
    void updateShellState(Long shellId,Long state);

    /**
     * 查找微博状态
     * @param sId
     * @return
     */
    Long findShellState(Long sId);


}
